/**
 * 公共全局状态
 */

const state = {
  currentClickInfo: {}, // 当前选中的鼠标信息
  movingMouseInfo: {}, // 当前鼠标移动信息
  currentRightClickInfo: {} // 当前鼠标右击信息
}

const mutations = {
  setCurrentClickInfo: (state, info) => {
    // 对于不需要双向监听的全局对象，使用属性冻结优化性能
    state.currentClickInfo = Object.freeze(info)
  },
  setMovingMouseInfo: (state, info) => {
    // 对于不需要双向监听的全局对象，使用属性冻结优化性能
    state.movingMouseInfo = Object.freeze(info)
  },
  setCurrentRightClickInfo: (state, info) => {
    // 对于不需要双向监听的全局对象，使用属性冻结优化性能
    state.currentRightClickInfo = Object.freeze(info)
  }
}

const actions = {}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
